
#ifndef _ARGZ_H_
#define _ARGZ_H_

#define NUM_WORDS 16
#define ONE_SYMBOL_LIM 127


enum token {
	T_INT_NUMBER,T_FLOAT_NUMBER,
	T_ID,
	T_ERROR,
	T_COLON, T_COMMA, T_DOT,
	T_IF, T_ELSE,
	T_FOR, T_WHILE,
	T_OP_BRACKET, T_CL_BRACKET,
	T_OP_BRACE, T_CL_BRACE,
	T_OP_PAR, T_CL_PAR,
	T_ATTR,
	T_MAIN,
	T_NOT, T_AND_BOOL, T_AND_BIT, T_OR_BOOL, T_OR_BIT, 
	T_GT, T_GT_EQ, T_LS, T_LS_EQ, T_IS_EQUAL_BOOL,
	T_PLUS, T_MINUS, T_TIMES, T_DIV,
	T_INC, T_DEC,
	T_INT,T_VOID,T_FLOAT,T_STRING,
	T_PRIVATE,T_PUBLIC,T_CLASS,T_IMPLEMENTS,T_EXTENDS,T_STATIC,
	T_C_IO_CALL,
	T_EOF};

char x, buffer[300], *error;

int old_lexer_line, old_lexer_col, lexer_line, lexer_col;

#define ADD_WORD(X,T) word[word_counter]=X;\
	word_len[word_counter]=strlen(word[word_counter]);\
	word_token[word_counter]=T;\
	word_counter++;

#define ERROR_MSG(err) error=err

char *word[NUM_WORDS];
int word_next[NUM_WORDS];
int word_len[NUM_WORDS];
int word_token[NUM_WORDS];
int word_counter=0;

void init();
int is_space();
int is_letter();
int is_digit();
int is_eof();
int getch();
int getToken();

#include "lexer.c"

#endif